import { app } from 'electron'
import { electronApp, optimizer } from '@electron-toolkit/utils'
import useMenu from '@main/hooks/MenuHook'
// import useDisableButton from '@main/hooks/DisableButtonHook'
import WindowManager from '@main/hooks/WindowManage'
import { ipcMainHandler } from '@ipc/IpcMain'
import useRecordHook from '@main/hooks/RecordHook'
const wm = new WindowManager()

function onAppReady() {
  // 禁用F12快捷键
  // useDisableButton().disableF12()
  // 初始化IPC事件处理
  ipcMainHandler.initialize()
  // 创建菜单栏
  useMenu().creactMenu()
  // 初始化窗口
  wm.initWindow()
  // 初始化录屏
  useRecordHook()
}

// 当electron准备完成后执行
// 创建窗口和初始化监听方法处理等
app.whenReady().then(() => {
  // 设置你的APPID，系统会自动分配，在一个应用启动多个时就需要自己设置一个进行区分
  electronApp.setAppUserModelId('com.threegold')

  app.on('browser-window-created', (_, window) => {
    optimizer.watchWindowShortcuts(window)
  })

  onAppReady()
})

app.on('window-all-closed', () => {
  // 当所有窗口关闭时，应用退出，macOS除外
  // 他会常驻在菜单栏（dock栏）
  // macOS使用Cmd + Q 才会退出
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('will-quit', () => {
  // 在应用退出前清理所有IPC监听器
  ipcMainHandler.removeAllListeners()
})
